; 特殊字符的映射关系:
; Control:^
; Alt:!
; Shift:+
; Window:#
LAlt::LCtrl  ; 将左 Alt 键映射为左 Ctrl 键
LControl::LWin  ; 将左 Ctrl 键映射为左 Win 键
LWin::LAlt ; 将右 Win 键映射为右 Alt 键

RAlt::RCtrl  ; 将右 Alt 键映射为右 Ctrl 键
RControl::RWin  ; 将右 Ctrl 键映射为右 Win 键
RWin::RAlt ; 将右 Win 键映射为右 Alt 键

$^Left:: SendInput "{Home}"
$^Right:: SendInput "{End}"
$^+Left:: SendInput "+{Home}" ; ctrl+shift+left 映射为 shift + home
$^+Right:: SendInput "+{End}"
;$+NumpadDiv::SendInput "+{VKBF}"
$+NumpadDiv:: SendInput "+{/}" ;键盘问号坏了， 从小键盘的映射过来

$^w:: {
    if (WinActive("ahk_exe webstorm64.exe") || WinActive("ahk_exe clion64.exe") || WinActive("ahk_exe Code.exe") ||
    WinActive("ahk_exe chrome.exe") || WinActive("ahk_exe msedge.exe")) {
        SendInput "^w" ;ctrl+w 执行 alt+F4操作
    } else {
        SendInput "!{F4}"
    }

}

$^s:: {
    if (WinActive("ahk_exe WeChat.exe")) {
        SendInput "{Enter}"
    } else {
        SendInput "^{s}"
    }

}
$#a:: {
    ; 微信的截图设置为 ctrl+alt+numpaddiv 映射成 win+a
    SendInput "^!{NumpadDiv}"
}

$^e:: {
    ; 编辑器中 ctrl + e 是选中前面的字符， 除此之外其他地方让其打开资源管理器
    if (WinActive("ahk_exe webstorm64.exe") || WinActive("ahk_exe clion64.exe") || WinActive("ahk_exe Code.exe")) {
        SendInput "^e" ;
    } else {
        SendInput "#{e}"
    }

}

activeOrRun(str, app) {
    if (WinExist(str)) {
        if (WinActive(str)) {

        } else {
            WinActivate str
        }
    } else {
        ; 需要将 WindowsTerminal运行路径添加到环境变量 如： C:\Users\123456\AppData\Local\Microsoft\WindowsApps
        ; 默认在用户目录已经设置了:%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
        Run app
    }
}

$^NumpadEnter:: {
    activeOrRun("ahk_exe Code.exe", "C:\Users\123456\AppData\Local\Programs\Microsoft VS Code\Code.exe")
}

$^Numpad0:: {
    activeOrRun("ahk_exe chrome.exe", "chrome.exe")
}

$^NumpadDot:: {
    ; 需要将 WindowsTerminal运行路径添加到环境变量 如： C:\Users\123456\AppData\Local\Microsoft\WindowsApps
    ; 默认在用户目录已经设置了:%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
    activeOrRun("ahk_exe WindowsTerminal.exe", "wt.exe")
}

;;;;;;;;;;;;;;;;;;;; 设置窗口组快捷键 start ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

$^Tab:: {
    Send "{Alt down}{tab}"
}
; 放开 Alt 不放开编辑器中 alt 一直处于按下状态， 必须手动放开
~!^::
~!+::
~!q::
~!w::
~!e::
~!r::
~!t::
~!y::
~!u::
~!i::
~!o::
~!p::
~!a::
~!s::
~!d::
~!f::
~!g::
~!h::
~!j::
~!k::
~!l::
~!z::
~!x::
~!c::
~!v::
~!b::
~!n::
~!m::
~!LButton::
~!RButton::
~!Escape::
~!Esc::
~!Enter:: {
    Send "{Alt Up}"
}
;;;;;;;;;;;;;;;;;;;; 设置窗口组快捷键 end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;MsgBox GetKeyName("/") ;
